/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package memoriaintermedia;

/**
 *
 * @author Usuario
 */
public class Pagina<T> {
    //identificador de la pagina
     private int numeroPagina;
     // datos almacenados en bloque 
     private T datos;
     // verifica si los datos son clavados
     private boolean paginaClavada;
     // revisa si los datos fueron modificados
     //para la pregunta 1....
     private boolean paginaModificada=false;
     
    /**
     * Crea una nueva pagina conociendo su id de pagina y los datos.
     * 
     //* @param numeroPagina el ID de esta página.
     //* @param datos datos almacenados en esta página.
     */
      public Pagina(int numeroPagina, T datos, boolean clavado) {

        this.numeroPagina = numeroPagina;
        this.datos = datos;
        this.paginaClavada = clavado;
        this.paginaModificada= false;

    }
    public T getDatos() {
        
        return datos;
    }

    public void setDatos(T datos) {
        if(!this.datos.equals(datos))
        {
           paginaModificada=true;
        }
        this.datos = datos;
    }


    public int getNumeroPagina() {
        return numeroPagina;
    }
    public void setNumeroPagina(int numeroPagina) {
        this.numeroPagina = numeroPagina;
    }    
    
    public boolean isPaginaClavada() {
        return paginaClavada;
    }

    public boolean isPaginaModificada() {
        return paginaModificada;
    }

    public void setPaginaClavada(boolean paginaClavada) {
        this.paginaClavada = paginaClavada;
    }

    public void setPaginaModificada(boolean paginaModificada) {
        this.paginaModificada = paginaModificada;
    }


    
     /**
     * Devuelde una representación textual de una página.
     * 
     * @return representación textual de esta página.
     */
    
    @Override
    public String toString()
    {
        if(this.paginaModificada==true)
        {
        
            return "Numero de Pagina: "+this.numeroPagina + "\t" +
                "Dato de pagina: " + this.datos;
                   
            
        } 
        else
        {
            return "Numero de Pagina: "+this.numeroPagina + "\t" +
                "Dato de pagina: " + this.datos;
        }
    }

}
